Internal to many network devices, e.g., switches and routers, there is often a processor responsible for processing packets used in the network device's global operation. These packets may arrive from across the network to any external network port on the network device, e.g., to an external port provided by a network chip installed on the network device. A given network device may have multiple network chips installed thereon with each network chip having multiple external ports. The network chips may be application specific integrated circuits (ASICs). The above described packets received to any of these external ports should be forwarded to the above mentioned processor in an efficient manner. Additionally, the packets from this processor should be capable of being sent out any appropriate external port or to local processing on any network chip.
The multiple network chips on a network device may be interconnected to one another via a high speed interconnect, e.g., a crossbar or internal switching fabric chip. In the past, one approach to providing packets received at the external network ports to a processor on the network device, i.e., the processor responsible for processing the packets used in the network device's global operation, was to put the processor access in a central place such as in the switching fabric. This approach introduces complex port forwarding logic into an otherwise straightforward crossbar switching fabric. Additionally this approach introduces two sets of code to keep in step with one another. Moreover, the approach is not available in a small network chip configuration which may not use a switching fabric chip.
Without added complex forwarding logic, a device may be unable to add data for additional functionality while still passing packets through an internal switch or using existing media access controller (MAC) logic circuitry.